\doxysection{SEGGER\+\_\+\+RTT.\+h}
\hypertarget{_s_e_g_g_e_r___r_t_t_8h_source}{}\label{_s_e_g_g_e_r___r_t_t_8h_source}\index{C:/Users/ASUS/Desktop/dm-\/ctrlH7-\/balance-\/9025test/Middlewares/Third\_Party/SEGGER/SEGGER/SEGGER\_RTT.h@{C:/Users/ASUS/Desktop/dm-\/ctrlH7-\/balance-\/9025test/Middlewares/Third\_Party/SEGGER/SEGGER/SEGGER\_RTT.h}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00002\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00003\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ The\ Embedded\ Experts\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00004\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00005\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00006\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ (c)\ 1995\ -\/\ 2019\ SEGGER\ Microcontroller\ GmbH\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00007\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00008\ \textcolor{comment}{*\ \ \ \ \ \ \ www.segger.com\ \ \ \ \ Support:\ support@segger.com\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00009\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00010\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00011\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00012\ \textcolor{comment}{*\ \ \ \ \ \ \ SEGGER\ SystemView\ *\ Real-\/time\ application\ analysis\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00013\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00014\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00015\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00016\ \textcolor{comment}{*\ All\ rights\ reserved.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00017\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00018\ \textcolor{comment}{*\ SEGGER\ strongly\ recommends\ to\ not\ make\ any\ changes\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00019\ \textcolor{comment}{*\ to\ or\ modify\ the\ source\ code\ of\ this\ software\ in\ order\ to\ stay\ \ \ \ \ *}}
\DoxyCodeLine{00020\ \textcolor{comment}{*\ compatible\ with\ the\ SystemView\ and\ RTT\ protocol,\ and\ J-\/Link.\ \ \ \ \ \ \ *}}
\DoxyCodeLine{00021\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00022\ \textcolor{comment}{*\ Redistribution\ and\ use\ in\ source\ and\ binary\ forms,\ with\ or\ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00023\ \textcolor{comment}{*\ without\ modification,\ are\ permitted\ provided\ that\ the\ following\ \ \ \ *}}
\DoxyCodeLine{00024\ \textcolor{comment}{*\ condition\ is\ met:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00025\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00026\ \textcolor{comment}{*\ o\ Redistributions\ of\ source\ code\ must\ retain\ the\ above\ copyright\ \ \ *}}
\DoxyCodeLine{00027\ \textcolor{comment}{*\ \ \ notice,\ this\ condition\ and\ the\ following\ disclaimer.\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00028\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00029\ \textcolor{comment}{*\ THIS\ SOFTWARE\ IS\ PROVIDED\ BY\ THE\ COPYRIGHT\ HOLDERS\ AND\ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00030\ \textcolor{comment}{*\ CONTRIBUTORS\ "{}AS\ IS"{}\ AND\ ANY\ EXPRESS\ OR\ IMPLIED\ WARRANTIES,\ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00031\ \textcolor{comment}{*\ INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ THE\ IMPLIED\ WARRANTIES\ OF\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00032\ \textcolor{comment}{*\ MERCHANTABILITY\ AND\ FITNESS\ FOR\ A\ PARTICULAR\ PURPOSE\ ARE\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00033\ \textcolor{comment}{*\ DISCLAIMED.\ IN\ NO\ EVENT\ SHALL\ SEGGER\ Microcontroller\ BE\ LIABLE\ FOR\ *}}
\DoxyCodeLine{00034\ \textcolor{comment}{*\ ANY\ DIRECT,\ INDIRECT,\ INCIDENTAL,\ SPECIAL,\ EXEMPLARY,\ OR\ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00035\ \textcolor{comment}{*\ CONSEQUENTIAL\ DAMAGES\ (INCLUDING,\ BUT\ NOT\ LIMITED\ TO,\ PROCUREMENT\ \ *}}
\DoxyCodeLine{00036\ \textcolor{comment}{*\ OF\ SUBSTITUTE\ GOODS\ OR\ SERVICES;\ LOSS\ OF\ USE,\ DATA,\ OR\ PROFITS;\ \ \ \ *}}
\DoxyCodeLine{00037\ \textcolor{comment}{*\ OR\ BUSINESS\ INTERRUPTION)\ HOWEVER\ CAUSED\ AND\ ON\ ANY\ THEORY\ OF\ \ \ \ \ \ *}}
\DoxyCodeLine{00038\ \textcolor{comment}{*\ LIABILITY,\ WHETHER\ IN\ CONTRACT,\ STRICT\ LIABILITY,\ OR\ TORT\ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00039\ \textcolor{comment}{*\ (INCLUDING\ NEGLIGENCE\ OR\ OTHERWISE)\ ARISING\ IN\ ANY\ WAY\ OUT\ OF\ THE\ \ *}}
\DoxyCodeLine{00040\ \textcolor{comment}{*\ USE\ OF\ THIS\ SOFTWARE,\ EVEN\ IF\ ADVISED\ OF\ THE\ POSSIBILITY\ OF\ SUCH\ \ \ *}}
\DoxyCodeLine{00041\ \textcolor{comment}{*\ DAMAGE.\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00042\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00043\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00044\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00045\ \textcolor{comment}{*\ \ \ \ \ \ \ SystemView\ version:\ V3.12\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00046\ \textcolor{comment}{*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *}}
\DoxyCodeLine{00047\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00048\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/END-\/OF-\/HEADER-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{00049\ \textcolor{comment}{File\ \ \ \ :\ SEGGER\_RTT.h}}
\DoxyCodeLine{00050\ \textcolor{comment}{Purpose\ :\ Implementation\ of\ SEGGER\ real-\/time\ transfer\ which\ allows}}
\DoxyCodeLine{00051\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ real-\/time\ communication\ on\ targets\ which\ support\ debugger\ }}
\DoxyCodeLine{00052\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ memory\ accesses\ while\ the\ CPU\ is\ running.}}
\DoxyCodeLine{00053\ \textcolor{comment}{Revision:\ \$Rev:\ 17697\ \$}}
\DoxyCodeLine{00054\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{00055\ \textcolor{comment}{*/}}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_H}}
\DoxyCodeLine{00058\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_H}}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00060\ \textcolor{preprocessor}{\#include\ "{}SEGGER\_RTT\_Conf.h"{}}}
\DoxyCodeLine{00061\ }
\DoxyCodeLine{00062\ }
\DoxyCodeLine{00063\ }
\DoxyCodeLine{00064\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00065\ \textcolor{comment}{*}}
\DoxyCodeLine{00066\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ defaults}}
\DoxyCodeLine{00067\ \textcolor{comment}{*}}
\DoxyCodeLine{00068\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00069\ \textcolor{comment}{*/}}
\DoxyCodeLine{00070\ \textcolor{preprocessor}{\#ifndef\ RTT\_USE\_ASM}}
\DoxyCodeLine{00071\ \textcolor{preprocessor}{\ \ \#if\ (defined\ \_\_SES\_ARM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ SEGGER\ Embedded\ Studio}}
\DoxyCodeLine{00072\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00073\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_CROSSWORKS\_ARM)\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Rowley\ Crossworks}}
\DoxyCodeLine{00074\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00075\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_GNUC\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ GCC}}
\DoxyCodeLine{00076\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00077\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_clang\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Clang\ compiler}}
\DoxyCodeLine{00078\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00079\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_IASMARM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ IAR\ assembler}}
\DoxyCodeLine{00080\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00081\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ICCARM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ IAR\ compiler}}
\DoxyCodeLine{00082\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00083\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{00084\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CC\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{00085\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{00086\ \textcolor{preprocessor}{\ \ \#if\ (defined\ \_\_ARM\_ARCH\_7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M3/4}}
\DoxyCodeLine{00087\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00088\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ARM\_ARCH\_7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M7}}
\DoxyCodeLine{00089\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00090\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ARM\_ARCH\_8M\_MAIN\_\_)\ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Cortex-\/M33}}
\DoxyCodeLine{00091\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00092\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ARM7M\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ IAR\ Cortex-\/M3/4}}
\DoxyCodeLine{00093\ \textcolor{preprocessor}{\ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7M\_\_)}}
\DoxyCodeLine{00094\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00095\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{00096\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{00097\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{00098\ \textcolor{preprocessor}{\ \ \#elif\ (defined\ \_\_ARM7EM\_\_)\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ IAR\ Cortex-\/M7}}
\DoxyCodeLine{00099\ \textcolor{preprocessor}{\ \ \ \ \#if\ (\_\_CORE\_\_\ ==\ \_\_ARM7EM\_\_)}}
\DoxyCodeLine{00100\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 1}}
\DoxyCodeLine{00101\ \textcolor{preprocessor}{\ \ \ \ \#else}}
\DoxyCodeLine{00102\ \textcolor{preprocessor}{\ \ \ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{00103\ \textcolor{preprocessor}{\ \ \ \ \#endif}}
\DoxyCodeLine{00104\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{00105\ \textcolor{preprocessor}{\ \ \ \ \#define\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT\ 0}}
\DoxyCodeLine{00106\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{00107\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{00108\ \ \ \textcolor{comment}{//\ If\ IDE\ and\ core\ support\ the\ ASM\ version,\ enable\ ASM\ version\ by\ default}}
\DoxyCodeLine{00109\ \ \ \textcolor{comment}{//}}
\DoxyCodeLine{00110\ \textcolor{preprocessor}{\ \ \#if\ (\_CC\_HAS\_RTT\_ASM\_SUPPORT\ \&\&\ \_CORE\_HAS\_RTT\_ASM\_SUPPORT)}}
\DoxyCodeLine{00111\ \textcolor{preprocessor}{\ \ \ \ \#define\ RTT\_USE\_ASM\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)}}
\DoxyCodeLine{00112\ \textcolor{preprocessor}{\ \ \#else}}
\DoxyCodeLine{00113\ \textcolor{preprocessor}{\ \ \ \ \#define\ RTT\_USE\_ASM\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (0)}}
\DoxyCodeLine{00114\ \textcolor{preprocessor}{\ \ \#endif}}
\DoxyCodeLine{00115\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00116\ }
\DoxyCodeLine{00117\ \textcolor{preprocessor}{\#ifndef\ SEGGER\_RTT\_ASM\ \ }\textcolor{comment}{//\ defined\ when\ SEGGER\_RTT.h\ is\ included\ from\ assembly\ file}}
\DoxyCodeLine{00118\ \textcolor{preprocessor}{\#include\ <stdlib.h>}}
\DoxyCodeLine{00119\ \textcolor{preprocessor}{\#include\ <stdarg.h>}}
\DoxyCodeLine{00120\ }
\DoxyCodeLine{00121\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00122\ \textcolor{comment}{*}}
\DoxyCodeLine{00123\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines,\ fixed}}
\DoxyCodeLine{00124\ \textcolor{comment}{*}}
\DoxyCodeLine{00125\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00126\ \textcolor{comment}{*/}}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00128\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00129\ \textcolor{comment}{*}}
\DoxyCodeLine{00130\ \textcolor{comment}{*\ \ \ \ \ \ \ Types}}
\DoxyCodeLine{00131\ \textcolor{comment}{*}}
\DoxyCodeLine{00132\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00133\ \textcolor{comment}{*/}}
\DoxyCodeLine{00134\ }
\DoxyCodeLine{00135\ \textcolor{comment}{//}}
\DoxyCodeLine{00136\ \textcolor{comment}{//\ Description\ for\ a\ circular\ buffer\ (also\ called\ "{}ring\ buffer"{})}}
\DoxyCodeLine{00137\ \textcolor{comment}{//\ which\ is\ used\ as\ up-\/buffer\ (T-\/>H)}}
\DoxyCodeLine{00138\ \textcolor{comment}{//}}
\DoxyCodeLine{00139\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00140\ \ \ \textcolor{keyword}{const}\ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ sName;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Optional\ name.\ Standard\ names\ so\ far\ are:\ "{}Terminal"{},\ "{}SysView"{},\ "{}J-\/Scope\_t4i4"{}}}
\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ pBuffer;\ \ \ \ \ \ \ \textcolor{comment}{//\ Pointer\ to\ start\ of\ buffer}}
\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ SizeOfBuffer;\ \ \textcolor{comment}{//\ Buffer\ size\ in\ bytes.\ Note\ that\ one\ byte\ is\ lost,\ as\ this\ implementation\ does\ not\ fill\ up\ the\ buffer\ in\ order\ to\ avoid\ the\ problem\ of\ being\ unable\ to\ distinguish\ between\ full\ and\ empty.}}
\DoxyCodeLine{00143\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ WrOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ written\ by\ either\ target.}}
\DoxyCodeLine{00144\ \ \ \textcolor{keyword}{volatile}\ \ \textcolor{keywordtype}{unsigned}\ RdOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ read\ by\ host.\ Must\ be\ volatile\ since\ it\ may\ be\ modified\ by\ host.}}
\DoxyCodeLine{00145\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ Flags;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Contains\ configuration\ flags}}
\DoxyCodeLine{00146\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\_RTT\_BUFFER\_UP}};}
\DoxyCodeLine{00147\ }
\DoxyCodeLine{00148\ \textcolor{comment}{//}}
\DoxyCodeLine{00149\ \textcolor{comment}{//\ Description\ for\ a\ circular\ buffer\ (also\ called\ "{}ring\ buffer"{})}}
\DoxyCodeLine{00150\ \textcolor{comment}{//\ which\ is\ used\ as\ down-\/buffer\ (H-\/>T)}}
\DoxyCodeLine{00151\ \textcolor{comment}{//}}
\DoxyCodeLine{00152\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00153\ \ \ \textcolor{keyword}{const}\ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ sName;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Optional\ name.\ Standard\ names\ so\ far\ are:\ "{}Terminal"{},\ "{}SysView"{},\ "{}J-\/Scope\_t4i4"{}}}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}*\ \ \ \ pBuffer;\ \ \ \ \ \ \ \textcolor{comment}{//\ Pointer\ to\ start\ of\ buffer}}
\DoxyCodeLine{00155\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ SizeOfBuffer;\ \ \textcolor{comment}{//\ Buffer\ size\ in\ bytes.\ Note\ that\ one\ byte\ is\ lost,\ as\ this\ implementation\ does\ not\ fill\ up\ the\ buffer\ in\ order\ to\ avoid\ the\ problem\ of\ being\ unable\ to\ distinguish\ between\ full\ and\ empty.}}
\DoxyCodeLine{00156\ \ \ \textcolor{keyword}{volatile}\ \ \textcolor{keywordtype}{unsigned}\ WrOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ written\ by\ host.\ Must\ be\ volatile\ since\ it\ may\ be\ modified\ by\ host.}}
\DoxyCodeLine{00157\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ RdOff;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Position\ of\ next\ item\ to\ be\ read\ by\ target\ (down-\/buffer).}}
\DoxyCodeLine{00158\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ Flags;\ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Contains\ configuration\ flags}}
\DoxyCodeLine{00159\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\_RTT\_BUFFER\_DOWN}};}
\DoxyCodeLine{00160\ }
\DoxyCodeLine{00161\ \textcolor{comment}{//}}
\DoxyCodeLine{00162\ \textcolor{comment}{//\ RTT\ control\ block\ which\ describes\ the\ number\ of\ buffers\ available}}
\DoxyCodeLine{00163\ \textcolor{comment}{//\ as\ well\ as\ the\ configuration\ for\ each\ buffer}}
\DoxyCodeLine{00164\ \textcolor{comment}{//}}
\DoxyCodeLine{00165\ \textcolor{comment}{//}}
\DoxyCodeLine{00166\ \textcolor{keyword}{typedef}\ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00167\ \ \ \textcolor{keywordtype}{char}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ acID[16];\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ "{}SEGGER\ RTT"{}}}
\DoxyCodeLine{00168\ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MaxNumUpBuffers;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS\ (type.\ 2)}}
\DoxyCodeLine{00169\ \ \ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ MaxNumDownBuffers;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{//\ Initialized\ to\ SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS\ (type.\ 2)}}
\DoxyCodeLine{00170\ \ \ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___u_p}{SEGGER\_RTT\_BUFFER\_UP}}\ \ \ \ aUp[SEGGER\_RTT\_MAX\_NUM\_UP\_BUFFERS];\ \ \ \ \ \ \ \textcolor{comment}{//\ Up\ buffers,\ transferring\ information\ up\ from\ target\ via\ debug\ probe\ to\ host}}
\DoxyCodeLine{00171\ \ \ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___b_u_f_f_e_r___d_o_w_n}{SEGGER\_RTT\_BUFFER\_DOWN}}\ \ aDown[SEGGER\_RTT\_MAX\_NUM\_DOWN\_BUFFERS];\ \ \ \textcolor{comment}{//\ Down\ buffers,\ transferring\ information\ down\ from\ host\ via\ debug\ probe\ to\ target}}
\DoxyCodeLine{00172\ \}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{SEGGER\_RTT\_CB}};}
\DoxyCodeLine{00173\ }
\DoxyCodeLine{00174\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00175\ \textcolor{comment}{*}}
\DoxyCodeLine{00176\ \textcolor{comment}{*\ \ \ \ \ \ \ Global\ data}}
\DoxyCodeLine{00177\ \textcolor{comment}{*}}
\DoxyCodeLine{00178\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00179\ \textcolor{comment}{*/}}
\DoxyCodeLine{00180\ \textcolor{keyword}{extern}\ \mbox{\hyperlink{struct_s_e_g_g_e_r___r_t_t___c_b}{SEGGER\_RTT\_CB}}\ \_SEGGER\_RTT\ ;}
\DoxyCodeLine{00181\ }
\DoxyCodeLine{00182\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00183\ \textcolor{comment}{*}}
\DoxyCodeLine{00184\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ API\ functions}}
\DoxyCodeLine{00185\ \textcolor{comment}{*}}
\DoxyCodeLine{00186\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00187\ \textcolor{comment}{*/}}
\DoxyCodeLine{00188\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{00189\ \ \ \textcolor{keyword}{extern}\ \textcolor{stringliteral}{"{}C"{}}\ \{}
\DoxyCodeLine{00190\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00191\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_AllocDownBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00192\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_AllocUpBuffer\ \ \ \ \ \ \ \ \ \ \ (\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00193\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_ConfigUpBuffer\ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00194\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_ConfigDownBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00195\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_GetKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{00196\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_HasData\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{00197\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_HasKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{00198\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_HasDataUp\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{00199\ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \ SEGGER\_RTT\_Init\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{00200\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_Read\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \ \ \ \ \ \ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{00201\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadNoLock\ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \ \ \ \ \ \ \textcolor{keywordtype}{void}*\ pData,\ \ \ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{00202\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetNameDownBuffer\ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName);}
\DoxyCodeLine{00203\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetNameUpBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ sName);}
\DoxyCodeLine{00204\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetFlagsDownBuffer\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00205\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_SetFlagsUpBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{unsigned}\ Flags);}
\DoxyCodeLine{00206\ \textcolor{keywordtype}{int}\ \ \ \ \ \ \ \ \ \ SEGGER\_RTT\_WaitKey\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{void});}
\DoxyCodeLine{00207\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_Write\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00208\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteNoLock\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00209\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteSkipNoLock\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00210\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ASM\_WriteSkipNoLock\ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00211\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteString\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ s);}
\DoxyCodeLine{00212\ \textcolor{keywordtype}{void}\ \ \ \ \ \ \ \ \ SEGGER\_RTT\_WriteWithOverwriteNoLock(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00213\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutChar\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{00214\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutCharSkip\ \ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{00215\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_PutCharSkipNoLock\ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{char}\ c);}
\DoxyCodeLine{00216\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_GetAvailWriteSpace\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{00217\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_GetBytesInBuffer\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex);}
\DoxyCodeLine{00218\ \textcolor{comment}{//}}
\DoxyCodeLine{00219\ \textcolor{comment}{//\ Function\ macro\ for\ performance\ optimization}}
\DoxyCodeLine{00220\ \textcolor{comment}{//}}
\DoxyCodeLine{00221\ \textcolor{preprocessor}{\#define\ \ \ \ \ \ SEGGER\_RTT\_HASDATA(n)\ \ \ \ \ \ \ (\_SEGGER\_RTT.aDown[n].WrOff\ -\/\ \_SEGGER\_RTT.aDown[n].RdOff)}}
\DoxyCodeLine{00222\ }
\DoxyCodeLine{00223\ \textcolor{preprocessor}{\#if\ RTT\_USE\_ASM}}
\DoxyCodeLine{00224\ \textcolor{preprocessor}{\ \ \#define\ SEGGER\_RTT\_WriteSkipNoLock\ \ SEGGER\_RTT\_ASM\_WriteSkipNoLock}}
\DoxyCodeLine{00225\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00226\ }
\DoxyCodeLine{00227\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00228\ \textcolor{comment}{*}}
\DoxyCodeLine{00229\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ transfer\ functions\ to\ send\ RTT\ data\ via\ other\ channels.}}
\DoxyCodeLine{00230\ \textcolor{comment}{*}}
\DoxyCodeLine{00231\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00232\ \textcolor{comment}{*/}}
\DoxyCodeLine{00233\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadUpBuffer\ \ \ \ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{00234\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_ReadUpBufferNoLock\ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keywordtype}{void}*\ pData,\ \textcolor{keywordtype}{unsigned}\ BufferSize);}
\DoxyCodeLine{00235\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteDownBuffer\ \ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00236\ \textcolor{keywordtype}{unsigned}\ \ \ \ \ SEGGER\_RTT\_WriteDownBufferNoLock\ \ \ (\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}*\ pBuffer,\ \textcolor{keywordtype}{unsigned}\ NumBytes);}
\DoxyCodeLine{00237\ }
\DoxyCodeLine{00238\ \textcolor{preprocessor}{\#define\ \ \ \ \ \ SEGGER\_RTT\_HASDATA\_UP(n)\ \ \ \ (\_SEGGER\_RTT.aUp[n].WrOff\ -\/\ \_SEGGER\_RTT.aUp[n].RdOff)}}
\DoxyCodeLine{00239\ }
\DoxyCodeLine{00240\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00241\ \textcolor{comment}{*}}
\DoxyCodeLine{00242\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ "{}Terminal"{}\ API\ functions}}
\DoxyCodeLine{00243\ \textcolor{comment}{*}}
\DoxyCodeLine{00244\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00245\ \textcolor{comment}{*/}}
\DoxyCodeLine{00246\ \textcolor{keywordtype}{int}\ \ \ \ \ SEGGER\_RTT\_SetTerminal\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ TerminalId);}
\DoxyCodeLine{00247\ \textcolor{keywordtype}{int}\ \ \ \ \ SEGGER\_RTT\_TerminalOut\ \ \ \ \ \ \ \ (\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ TerminalId,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}*\ s);}
\DoxyCodeLine{00248\ }
\DoxyCodeLine{00249\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00250\ \textcolor{comment}{*}}
\DoxyCodeLine{00251\ \textcolor{comment}{*\ \ \ \ \ \ \ RTT\ printf\ functions\ (require\ SEGGER\_RTT\_printf.c)}}
\DoxyCodeLine{00252\ \textcolor{comment}{*}}
\DoxyCodeLine{00253\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00254\ \textcolor{comment}{*/}}
\DoxyCodeLine{00255\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_printf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ ...);}
\DoxyCodeLine{00256\ \textcolor{keywordtype}{int}\ SEGGER\_RTT\_vprintf(\textcolor{keywordtype}{unsigned}\ BufferIndex,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *\ sFormat,\ va\_list\ *\ pParamList);}
\DoxyCodeLine{00257\ }
\DoxyCodeLine{00258\ \textcolor{preprocessor}{\#ifdef\ \_\_cplusplus}}
\DoxyCodeLine{00259\ \ \ \}}
\DoxyCodeLine{00260\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00261\ }
\DoxyCodeLine{00262\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{//\ ifndef(SEGGER\_RTT\_ASM)}}
\DoxyCodeLine{00263\ }
\DoxyCodeLine{00264\ \textcolor{comment}{/*********************************************************************}}
\DoxyCodeLine{00265\ \textcolor{comment}{*}}
\DoxyCodeLine{00266\ \textcolor{comment}{*\ \ \ \ \ \ \ Defines}}
\DoxyCodeLine{00267\ \textcolor{comment}{*}}
\DoxyCodeLine{00268\ \textcolor{comment}{**********************************************************************}}
\DoxyCodeLine{00269\ \textcolor{comment}{*/}}
\DoxyCodeLine{00270\ }
\DoxyCodeLine{00271\ \textcolor{comment}{//}}
\DoxyCodeLine{00272\ \textcolor{comment}{//\ Operating\ modes.\ Define\ behavior\ if\ buffer\ is\ full\ (not\ enough\ space\ for\ entire\ message)}}
\DoxyCodeLine{00273\ \textcolor{comment}{//}}
\DoxyCodeLine{00274\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_NO\_BLOCK\_SKIP\ \ \ \ \ \ \ \ \ (0)\ \ \ \ \ }\textcolor{comment}{//\ Skip.\ Do\ not\ block,\ output\ nothing.\ (Default)}}
\DoxyCodeLine{00275\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_NO\_BLOCK\_TRIM\ \ \ \ \ \ \ \ \ (1)\ \ \ \ \ }\textcolor{comment}{//\ Trim:\ Do\ not\ block,\ output\ as\ much\ as\ fits.}}
\DoxyCodeLine{00276\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_BLOCK\_IF\_FIFO\_FULL\ \ \ \ (2)\ \ \ \ \ }\textcolor{comment}{//\ Block:\ Wait\ until\ there\ is\ space\ in\ the\ buffer.}}
\DoxyCodeLine{00277\ \textcolor{preprocessor}{\#define\ SEGGER\_RTT\_MODE\_MASK\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)}}
\DoxyCodeLine{00278\ }
\DoxyCodeLine{00279\ \textcolor{comment}{//}}
\DoxyCodeLine{00280\ \textcolor{comment}{//\ Control\ sequences,\ based\ on\ ANSI.}}
\DoxyCodeLine{00281\ \textcolor{comment}{//\ Can\ be\ used\ to\ control\ color,\ and\ clear\ the\ screen}}
\DoxyCodeLine{00282\ \textcolor{comment}{//}}
\DoxyCodeLine{00283\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_RESET\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[0m"{}\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Reset\ to\ default\ colors}}
\DoxyCodeLine{00284\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_CLEAR\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2J"{}\ \ \ \ \ \ \ \ \ }\textcolor{comment}{//\ Clear\ screen,\ reposition\ cursor\ to\ top\ left}}
\DoxyCodeLine{00285\ }
\DoxyCodeLine{00286\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BLACK\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;30m"{}}}
\DoxyCodeLine{00287\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_RED\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;31m"{}}}
\DoxyCodeLine{00288\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_GREEN\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;32m"{}}}
\DoxyCodeLine{00289\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_YELLOW\ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;33m"{}}}
\DoxyCodeLine{00290\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BLUE\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;34m"{}}}
\DoxyCodeLine{00291\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_MAGENTA\ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;35m"{}}}
\DoxyCodeLine{00292\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_CYAN\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;36m"{}}}
\DoxyCodeLine{00293\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_WHITE\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[2;37m"{}}}
\DoxyCodeLine{00294\ }
\DoxyCodeLine{00295\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_BLACK\ \ \ \ "{}\(\backslash\)x1B[1;30m"{}}}
\DoxyCodeLine{00296\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_RED\ \ \ \ \ \ "{}\(\backslash\)x1B[1;31m"{}}}
\DoxyCodeLine{00297\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_GREEN\ \ \ \ "{}\(\backslash\)x1B[1;32m"{}}}
\DoxyCodeLine{00298\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_YELLOW\ \ \ "{}\(\backslash\)x1B[1;33m"{}}}
\DoxyCodeLine{00299\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_BLUE\ \ \ \ \ "{}\(\backslash\)x1B[1;34m"{}}}
\DoxyCodeLine{00300\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_MAGENTA\ \ "{}\(\backslash\)x1B[1;35m"{}}}
\DoxyCodeLine{00301\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_CYAN\ \ \ \ \ "{}\(\backslash\)x1B[1;36m"{}}}
\DoxyCodeLine{00302\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_TEXT\_BRIGHT\_WHITE\ \ \ \ "{}\(\backslash\)x1B[1;37m"{}}}
\DoxyCodeLine{00303\ }
\DoxyCodeLine{00304\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BLACK\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;40m"{}}}
\DoxyCodeLine{00305\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_RED\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;41m"{}}}
\DoxyCodeLine{00306\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_GREEN\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;42m"{}}}
\DoxyCodeLine{00307\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_YELLOW\ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;43m"{}}}
\DoxyCodeLine{00308\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BLUE\ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;44m"{}}}
\DoxyCodeLine{00309\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_MAGENTA\ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;45m"{}}}
\DoxyCodeLine{00310\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_CYAN\ \ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;46m"{}}}
\DoxyCodeLine{00311\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_WHITE\ \ \ \ \ \ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[24;47m"{}}}
\DoxyCodeLine{00312\ }
\DoxyCodeLine{00313\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_BLACK\ \ \ \ \ \ "{}\(\backslash\)x1B[4;40m"{}}}
\DoxyCodeLine{00314\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_RED\ \ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;41m"{}}}
\DoxyCodeLine{00315\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_GREEN\ \ \ \ \ \ "{}\(\backslash\)x1B[4;42m"{}}}
\DoxyCodeLine{00316\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_YELLOW\ \ \ \ \ "{}\(\backslash\)x1B[4;43m"{}}}
\DoxyCodeLine{00317\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_BLUE\ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;44m"{}}}
\DoxyCodeLine{00318\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_MAGENTA\ \ \ \ "{}\(\backslash\)x1B[4;45m"{}}}
\DoxyCodeLine{00319\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_CYAN\ \ \ \ \ \ \ "{}\(\backslash\)x1B[4;46m"{}}}
\DoxyCodeLine{00320\ \textcolor{preprocessor}{\#define\ RTT\_CTRL\_BG\_BRIGHT\_WHITE\ \ \ \ \ \ "{}\(\backslash\)x1B[4;47m"{}}}
\DoxyCodeLine{00321\ }
\DoxyCodeLine{00322\ }
\DoxyCodeLine{00323\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00324\ }
\DoxyCodeLine{00325\ \textcolor{comment}{/***************************\ End\ of\ file\ ****************************/}}

\end{DoxyCode}
